const { verify, timestr,md5 } = require("./functions.js");

const injure = (instance)=>{
    var config = {params:{}};
    
    // 路径：sso/servlet/organduser， 调用方法GET
    
    //params要求传输以下属性，没有标注'有默认值'的参数由调用方传输
    //-method(有默认值)：调用方法
    //-servicecode：接入资源在SSO注册成功后的业务代码，由【SSO管理员】提供。
    //-time(有默认值)：时间戳，当前时间 年月日时分秒 例：2009年10月10日 12时12分12秒格式为20091010121212
    //-sign(有默认值)：MD5(servicecode+servicepwd+time)，将业务代码、业务密钥、发送时间按顺序连接并进行md5加密。注：1、参数servicepwd由【SSO管理员】提供；2、MD5算法是标准算法，可使用java内部实现；3、MD5后的值为32位并且小写。
    //-userid：用户在SSO的身份唯一标示
    //-datatype(有默认值)：数据格式  xml  json。默认xml
    //-servicepwd：分配的密码，注意，该参数仅用于sign计算
    instance.getSsoServletOrganduser = (params = {}) => {

        var verify_err = null ||
            verify(params.servicecode,"servicecode",{"required":true}) ||
            verify(params.userid,"userid",{"required":true}) ||
            verify(params.servicepwd,"servicepwd",{"required":true});
        if ( verify_err !=null){
           return verify_err;
        }
        
        var defaultParam = { 
            datatype: "json",
            method: "getUserInfoById",
        };

        params = Object.assign(defaultParam,params);
        if (params.time == undefined){ 
            params.time= timestr("YYYYMMDDHHmmss");
        }
        if (params.sign == undefined){ 
            params.sign= md5(params.servicecode+params.servicepwd+params.time);
        }
        
        return instance.get("sso/servlet/organduser",{params});
    }
    
}

module.exports = {
    injure
}